package com.example.cushion.bean;

import android.view.View;
import android.widget.CompoundButton;

/**
 * 侧滑菜单的item
 * Created by WL001 on 2017/5/8.
 */

public class MyMenuItem {
    /**
     * 普通类型,有子标题就直接显示子标题，没有就放空
     */
    public static final int TYPE_COMMON_TEXT = 0x00;
    /**
     * 右边箭头
     */
    public static final int TYPE_ARROW_RIGHT = 0x01;
    /**
     * 开关类型
     */
    public static final int TYPE_TOGGLE_SWITCH = 0x02;
    /**
     * 单选按钮
     */
    public static final int TYPE_RADIO_BUTTON = 0x03;
    /**
     * 多选按钮
     */
    public static final int TYPE_CHECK_BOX = 0x04;
    /**
     * 有子标题，没有右边箭头，间隔和有箭头的一致
     */
    public static final int TYPE_ONLY_TITLE_AND_SUB_TITLE = 0x05;
    /**
     * 名字，即主标题
     */
    public String name;
    /**
     * 每个item都有个唯一识别id，可以不用，直接使用name也是同理的
     */
    public int id;
    /**
     * 子标题
     */
    public String subName;
    /**
     * 类型，有箭头，开关等等
     */
    public int type;
    /**
     * 开关状态，开启或者关闭
     * true:选中或者打开， false:关闭或者未选中
     */
    public boolean status;
    /**
     * 点击事件，item的点击事件
     */
    public View.OnClickListener onClickListener;
    /**
     * 选中状态改变时的监听，一般用于开关选项
     */
    public CompoundButton.OnCheckedChangeListener onCheckedChangeListener;
    /**
     * icon的点击事件
     */
    public View.OnClickListener onIconClickListener;
    /**
     * 图标的资源文件id，一般都是前面的一个图标
     */
    public int iconRes;
    /**
     * 显示的数量
     */
    public long count;

    /**
     * 设置当前状态，传入当前组选中的ID
     *
     * @param id
     */
    public void setStatus(int id) {
        status = (this.id == id);
    }

    /**
     * 设置当前状态，如果为选中状态，即true
     *
     * @param status
     */
    public void setStatus(boolean status) {
        this.status = status;
    }

    /**
     * 代码（指令代码，比如模拟报警，每个不同事情都有个代码）
     */
    public int code;
    /**
     * 比如方便点击跳转
     */
    public Class clazz;
    /**
     * 设置一个tag
     */
    public Object tag;
}
